1. Field of the Invention
The present invention relates to a gateway module, and its methods of use, and more particularly to a gateway module for realizing a communication protocol containing a transport layer and a method to control a gateway module in a communication network.
2. Description of the Related Art
The IETF has proposed Mobile IP as a solution to the problem of providing communication support to IP-based mobile devices during the change of their points of attachment. The proposed solution includes the following, (i) a mobile node that has software running on the mobile node and (ii) a home agent that keeps track of the mobile node, intercepts the packet for the mobile node, and tunnels the packet to the mobile node. When a mobile node moves to a different network, it may get its IP address from the network or can attach itself to a software unit, called a foreign agent, in the network. Correspondingly, the home agent may send the packet directly to the mobile node or via the foreign agent.
In recent years there are increasing demands for realizing data communications with a mobile IP-based host. TCP (Transmission Control Protocol) is widely used as a reliable transport layer protocol in the wire data communications. However, the direct application of this protocol to mobile IP communications creates a number of problems.
A TCP segment loss implies that there is congestion of a network. TCP is designed to avoid the congestion by lowering a data transmission rate when the segment loss is detected. For this reason, Mobile IP has the effect of performance degradation of TCP. This occurs during the handoff process when a mobile node moves from its present network (A) to a different network (B). During this movement, there is no entity in network A to send acknowledgements to the packets meant for the mobile node. This causes non-receipt of acknowledgement of packets at a TCP sender that in turn assumes it to be loss of TCP segments. The TCP segment loss due to a handoff is interpreted as the congestion. This causes congestion avoidance operations to be executed more than necessary. As a result the throughput is lowered more than necessary.
One proposal to remedy this problem is to use a modified form of TCP. This is a scheme in which the data loss due to handoff is handled in such a way that a re-transmission is carried out as if data loss was not caused by congestion. This is done by a method in which the transport layer connection is divided into two by breaking the connection at the gateway and relaying data between the two connections. However, this violates the end-to-end semantics of the TCP. TCP requires a guarantee that data of interest has reached a receiving side terminal. Hence an acknowledgement “ack” for that data is sent when the data is received by the receiving side terminal. The fact that the gateway for carrying out the TCP relay at a gateway returns an “ack” for data to the transmitting side when that data is received at the gateway, may not meet the guarantee.
Application layer protocols utilizing TCP include those that require preservation of end-to-end semantics and those that do not. In HTTP, the client sets up a TCP connection prior to an individual HTTP request, and the server disconnects a TCP connection after a response to the HTTP request is transmitted from the client. In this case, the request is completed by a response by the application layer so that no problem arises even when the end-to-end semantics of the TCP are changed. However, it is preferable to preserve the end-to-end semantics of the TCP for protocols such as TELNET (remote terminal protocol).
Further, when it becomes necessary to relay a TCP connection at a gateway as a mobile node carries out handoff, there is a need to set up the gateway to establish a state that is capable of communicating through TCP with the mobile node after its movement. This establishment of a state takes some time and the throughput is lowered when the mobile node carries out the handoff. Additionally, the transmitting side of the TCP determines Retransmission Time Out (“RTO”) according to the observed RTT. As RTO becomes large, the re-transmission wait time at a time of TCP segment loss also increases and the throughput is lowered.
By way of example, consider a case where the gateway transmits “ack” for some data with respect to the transmitting side terminal, and before the transmission of that data to the receiving side terminal succeeds. In this case, the transmitting side terminal discards that data from a re-transmission buffer upon receiving “ack” so that it becomes impossible to retransmit that data. Namely, the TCP connection is a transport layer protocol that is aimed at realizing reliable communications but the introduction of gateway has a contrary effect of lowering the reliability of the TCP.
In the TCP layer and the Internet Protocol (“IP”) layer, it is possible to utilize standard additional functions that are provided as options. Here, the options include a search of Maximum Transfer Unit (“MTU”) which is the maximum packet size that can be transferred without fragmentation on a path between communicating terminals. This procedure is called a path MTU discovery. It avoids spending wasteful processing time because no fragments are produced at intermediate routers and the like on the path.
Information for controlling such options is included in the TCP header. A terminal X that wishes to utilize the option transmits a TCP segment having a header with this option attached thereto at a time of requesting the TCP connection establishing. Upon receiving this TCP segment having a header with the option attached, a terminal Y carries out a prescribed option processing and determines whether to permit or refuse that option. Terminal Y then transmits a TCP segment that contains information on permission/refusal. When this information indicates the permission, the optional function is executed. When this information indicates the refusal, the optional function is not executed.
A decision must be made whether or not to permit the option between terminals that set up the connection. In the case of relaying the connection at a gateway, the connection is set up in divided form upon receiving the TCP “connection establishing” request at the gateway. This becomes a problem because the two connections may have different MTU and hence, this may necessitate fragmentation at the gateway. In TCP, the management of a series of processing in the sequence of connection establishment, data transmission and reception and then disconnection, is realized by using a TCP state transition diagram. The transmission and reception of actual user data are carried out in the “ESTABLISHED” state. A “CLOSED” state corresponds to a period beginning with the connection release and continuing until the connection is established, i.e., no connection exists in this state. SYN SENT, SYN RCVD and LISTEN are “connection establishing” phases. Similarly, there are different states for “connection release” phases. There are a few more states in TCP An end point of a TCP connection can be in any of these states. Hence, in the case of carrying out an operation to shift an end point of the TCP connection there is a possibility of falling into an unstable state. This may result in incorrect operation of TCP.
Coming back to the issues of mobile IP performance, there are two broad approaches proposed as solution to improve TCP performance during handoff in mobile IP. The first is through hierarchical foreign agents (HFA). In this approach foreign agents are arranged in hierarchical manner, and movement of the mobile node within the networks is handled by registration with the lowest possible common intermediate foreign agent common to both the networks. This has the effect of reduced time for handoff. Because of the fast handoff, the TCP performance degradation is less severe. However, the degradation can be further avoided by buffering packets at the foreign agent of the first network from which the mobile node moved. Once the mobile node has reached the destination network, the former foreign agent forwards the received packets to the foreign agent of the mobile node in the second network.
After this handoff, correspondent node communicates with the foreign agent in the second network. However, during the handoff, the correspondent node continued its communication through TCP with the foreign agent at the first network. Therefore, there is no performance degradation due to false congestion. It is to be noted that this requires support of foreign agents in the networks that the mobile node travels. At this moment, however we cannot expect support of foreign agent in each network. Therefore this approach has limited applicability.
The second approach uses multicasting. In this approach, when a mobile node moves from a first network to a second network, the packet is multicast to both the networks. This prevents loss of packet during handoff. This approach requires support of multicast routers over the Internet. Again, the Internet may not fulfill this.
Hence, there is a need for an improved gateway module and control methods that can be used to provide efficient handoff of mobile IP. There is another need for a gateway module and control methods that provide improved performance during handoff that does not require support of multicasting or a foreign agent. There is a further need for a gateway module where both the gateway and mobile node are under one administrative control authority.